package api

import (
	"cmall/pkg/logging"
	"cmall/service"

	"github.com/gin-gonic/gin"
)
// @Summary  加入购物车
// @Description 加入购物车接口
// @Tags 购物功能操作
// @Accept json
// @Param data body service.CreateCartService true "演示参数"
// @Produce json
// @Success 200
// @Router /carts [post]
func CreateCart(c *gin.Context) {
	service := service.CreateCartService{}
	if err := c.ShouldBind(&service); err == nil {
		res := service.Create()
		c.JSON(200, res)
	} else {
		c.JSON(200, ErrorResponse(err))
		logging.Info(err)
	}
}
// @Summary  购物车详情
// @Description 购物车详情接口
// @Tags 购物功能操作
// @Accept json
// @Param id path int true "用户id"
// @Produce json
// @Success 200
// @Router /carts/{id} [get]
func ShowCarts(c *gin.Context) {
	service := service.ShowCartsService{}
	res := service.Show(c.Param("id"))
	c.JSON(200, res)
}

// @Summary  修改购物车信息
// @Description 修改购物车信息接口
// @Tags 购物功能操作
// @Accept json
// @Param data body service.UpdateCartService true "演示参数"
// @Produce json
// @Success 200
// @Router /carts [put]
func UpdateCart(c *gin.Context) {
	service := service.UpdateCartService{}
	if err := c.ShouldBind(&service); err == nil {
		res := service.Update()
		c.JSON(200, res)
	} else {
		c.JSON(200, ErrorResponse(err))
		logging.Info(err)
	}
}
// @Summary  删除购物车
// @Description 删除购物车接口
// @Tags 购物功能操作
// @Accept json
// @Param data body service.DeleteCartService true "演示参数"
// @Produce json
// @Success 200
// @Router /carts [DELETE]
func DeleteCart(c *gin.Context) {
	service := service.DeleteCartService{}
	if err := c.ShouldBind(&service); err == nil {
		res := service.Delete()
		c.JSON(200, res)
	} else {
		c.JSON(200, ErrorResponse(err))
		logging.Info(err)
	}
}
